package com.bob.clan.wxconnector.DTO;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * 微信服务器转发的用户的消息与事件的对像类。
 * 本类严格按微信接口文档里批导的XML转化而来
 *
 * 哈哈，我知道微信为何要把属性名的首字段都大写，这虽然是违背了Java的命名规范，但只有这样才可以让@XmlElement工作
 */
//@Data
@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.PROPERTY)
public class WxMsgLow {
    // @XmlElement
    private String toUserName;//开发者微信号
    // @XmlElement
    private String fromUserName;//发送方账号（一个OpenID）
    // @XmlElement
    private Integer createTime; //消息创建时间 （整型）
    // @XmlElement
    private String msgType;//消息类型
    // @XmlElement
    private String content;     //【文本消息】消息内容
    // @XmlElement
    private String picUrl;      //【图片消息】图片链接
    // @XmlElement
    private Integer mediaId;    //消息媒体id，可以调用获取临时素材接口拉取数据
    // @XmlElement
    private String format;      //【语音消息】语音格式，如amr，speex等
    // @XmlElement
    private Integer thumbMediaId; //视频消息缩略图的媒体id，可以调用多媒体文件下载接口拉取数据。
    // @XmlElement
    private Double location_X;  //【地理位置消息】地理位置纬度
    // @XmlElement
    private Double location_Y;  //【地理位置消息】地理位置经度
    // @XmlElement
    private Double scale;       //【地理位置消息】地图缩放大小
    // @XmlElement
    private String label;       //【地理位置消息】地理位置信息
    // @XmlElement
    private String title;       //【链接消息】消息标题
    // @XmlElement
    private String description; //【链接消息】消息描述
    // @XmlElement
    private String url;         //【链接消息】消息链接
    // @XmlElement
    private Integer msgId;//消息ID
    // @XmlElement
    private Integer msgDataId; //消息的数据ID（消息如果来自文章时才有）
    // @XmlElement
    private Integer idx; //多图文时第几篇文章，从1开始（消息如果来自文章时才有）
    // @XmlElement
    private Integer mediaId26K; //16K采样率语音消息媒体id，可以调用获取临时素材接口拉取数据，返回16K采样率amr/speex语音。
    // @XmlElement
    private String event;//事件种类，有SCAN，subscribe,unsubscribe
    // @XmlElement
    private String eventKey; //事件KEY值，即创建二维码时的二维码scene_id
    // @XmlElement
    private String ticket; //二维码的ticket，可用来换取二维码图片
    // @XmlElement
    private Double latitude; //地理位置纬度
    // @XmlElement
    private Double longitude; //地理位置经度
    // @XmlElement
    private Double precision; //地理位置精度
    @XmlElement
    public String getToUserName() {
        return toUserName;
    }

    public void setToUserName(String toUserName) {
        toUserName = toUserName;
    }
    @XmlElement
    public String getFromUserName() {
        return fromUserName;
    }

    public void setFromUserName(String fromUserName) {
        fromUserName = fromUserName;
    }
    @XmlElement
    public Integer getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Integer createTime) {
        createTime = createTime;
    }
    @XmlElement
    public String getMsgType() {
        return msgType;
    }

    public void setMsgType(String msgType) {
        msgType = msgType;
    }
    @XmlElement
    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        content = content;
    }
    @XmlElement
    public String getPicUrl() {
        return picUrl;
    }

    public void setPicUrl(String picUrl) {
        this.picUrl = picUrl;
    }
    @XmlElement
    public Integer getMediaId() {
        return mediaId;
    }

    public void setMediaId(Integer mediaId) {
        mediaId = mediaId;
    }
    @XmlElement
    public String getFormat() {
        return format;
    }

    public void setFormat(String format) {
        format = format;
    }
    @XmlElement
    public Integer getThumbMediaId() {
        return thumbMediaId;
    }

    public void setThumbMediaId(Integer thumbMediaId) {
        thumbMediaId = thumbMediaId;
    }
    @XmlElement
    public Double getLocation_X() {
        return location_X;
    }

    public void setLocation_X(Double location_X) {
        location_X = location_X;
    }
    @XmlElement
    public Double getLocation_Y() {
        return location_Y;
    }

    public void setLocation_Y(Double location_Y) {
        location_Y = location_Y;
    }
    @XmlElement
    public Double getScale() {
        return scale;
    }

    public void setScale(Double scale) {
        scale = scale;
    }
    @XmlElement
    public String getLabel() {
        return label;
    }

    public void setLabel(String label) {
        label = label;
    }
    @XmlElement
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        title = title;
    }
    @XmlElement
    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        description = description;
    }
    @XmlElement
    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        url = url;
    }
    @XmlElement
    public Integer getMsgId() {
        return msgId;
    }

    public void setMsgId(Integer msgId) {
        msgId = msgId;
    }
    @XmlElement
    public Integer getMsgDataId() {
        return msgDataId;
    }

    public void setMsgDataId(Integer msgDataId) {
        msgDataId = msgDataId;
    }
    @XmlElement
    public Integer getIdx() {
        return idx;
    }

    public void setIdx(Integer idx) {
        idx = idx;
    }
    @XmlElement
    public Integer getMediaId26K() {
        return mediaId26K;
    }

    public void setMediaId26K(Integer mediaId26K) {
        mediaId26K = mediaId26K;
    }
    @XmlElement
    public String getEvent() {
        return event;
    }

    public void setEvent(String event) {
        event = event;
    }
    @XmlElement
    public String getEventKey() {
        return eventKey;
    }

    public void setEventKey(String eventKey) {
        eventKey = eventKey;
    }
    @XmlElement
    public String getTicket() {
        return ticket;
    }

    public void setTicket(String ticket) {
        ticket = ticket;
    }
    @XmlElement
    public Double getLatitude() {
        return latitude;
    }

    public void setLatitude(Double latitude) {
        latitude = latitude;
    }
    @XmlElement
    public Double getLongitude() {
        return longitude;
    }

    public void setLongitude(Double longitude) {
        longitude = longitude;
    }
    @XmlElement
    public Double getPrecision() {
        return precision;
    }

    public void setPrecision(Double precision) {
        precision = precision;
    }
}
